void main() {
  // 1.2 定义一个变量接收函数
  // var f = funcDemo1;
  // Function f = funcDemo1;
  // f();

  // 2.2 函数作为参数
  funcDemo2(funcDemo3);

  Function f = () {
    print('这是一个匿名函数');
  };
  f();

  // 2. 可以作为参数传递给其他函数去调用（回调函数）
  funcDemo(() {
    print('这个匿名函数是个参数');
  });
}

// 1.1 函数可以作为对象赋值给其他变量
void funcDemo1() {
  print('funcDemo1');
}

// 2.1 函数可以作为参数传递给其他函数
void funcDemo2(Function func) {
  // 调用外界传入的函数
  func();
}

// 定义作为参数的函数: 把funcDemo3传入到funcDemo2
void funcDemo3() {
  print('funcDemo3');
}

void printString(String name, {int? age, String? location = '昌平区'}) {
  print('$name - $age - $location');
}

// 定义一个接收函数作为参数的函数
void funcDemo(Function func) {
  func();
}
